package com.pn.service;

import com.pn.entity.Result;
import com.pn.entity.User;
import com.pn.entity.dto.AssignRoleDto;
import com.pn.page.Page;

import java.util.List;

public interface UserService {

    User queryUserByCode(String userCode);

    /**
     * 分页查询用户
     *
     * @param page 分页类
     * @param user 封装了查询条件的User对象
     * @return 用户集合
     */
    Page queryUserByPage(Page page, User user);

    /**
     * 添加用户业务方法
     *
     * @param user 用户对象
     * @return 响应类
     */
    Result saveUser(User user);

    /**
     * 更新用户状态 0 禁用 1 启用
     *
     * @param user 用户对象
     * @return 影响行数
     */
    Result setUserState(User user);

    /**
     * 删除用户
     *
     * @param ids 用户id集合
     * @return 影响行数
     */
    Result removeUserByIds(List<Integer> ids);

    /**
     * 修改用户昵称
     *
     * @param user 用户对象
     * @return 影响行数
     */
    Result setUserByUid(User user);

    /**
     * 重置用户密码
     *
     * @param userId 用户id
     * @return 影响行数
     */
    Result setPwdByUid(Integer userId);

    /**
     * 分配用户角色
     *
     * @param assignRoleDto xxx
     */
    void assignRole(AssignRoleDto assignRoleDto);
}
